AWS DataSync アクティベーションキーによるエージェント登録からデータ転送までをやってみた

AWS DataSync アクティベーションキーによるエージェント登録からデータ転送までをやってみた

Clock Icon2024.10.26

はじめに

AWS DataSync は、オンプレミスストレージと AWS ストレージサービス間、または AWS ストレージサービス間でデータを転送できるサービスです。この記事では、DataSync Agent のセットアップから、アクティベーションキーを使用して DataSync Agent をアクティベートする方法までをやってみます。

本検証ではオンプレミス環境で DataSync Agent を利用することを想定しています。

DataSync Agent のアクティベーション方法

DataSync Agent のアクティベート方法は大きく分けて 2 つあります。

マネージメントコンソールへ接続可能な端末が、DataSync Agent(仮想マシン)にも 80 番ポートでアクセスできる状況

  1. DataSync のエージェント登録画面から DataSync Agent の DNS名または、プライベートIP を指定して登録

DataSync Agent(仮想マシン)へローカル接続が可能な状況

  1. DataSync Agent のローカルコンソールからアクティベーションキー(文字列)を発行
  2. インターネット接続可能な端末でマネージメントコンソールを開く
  3. DataSync のエージェント登録画面でアクティベーションキーを入力してエージェント登録

https://docs.aws.amazon.com/datasync/latest/userguide/activate-agent.html#get-activation-key

検証環境

今回はローカルコンソール接続からアクティベーションキー発行からのアクティベーションまでの作業内容を把握するために試してみました。自宅にハイパーバイザーを動かす環境がないため、残念ですが EC2 を利用してで検証します。

構成図

Untitled(16) (2)

DataSync Agent の準備

DataSync Agent のセットアップを始めるには、まず最新の AMI を確認します。以下の AWS CLI コマンドで、最新の AMI ID を取得できます。

aws ssm get-parameter --name /aws/service/datasync/ami --region ap-northeast-1
実行結果
{
    "Parameter": {
        "Name": "/aws/service/datasync/ami",
        "Type": "String",
        "Value": "ami-069046d9db78be45c",
        "Version": 103,
        "LastModifiedDate": "2024-10-20T23:57:13.047000+09:00",
        "ARN": "arn:aws:ssm:ap-northeast-1::parameter/aws/service/datasync/ami",
        "DataType": "text"
    }
}

確認した DataSync Agent の AMI を使用し、以下の設定でインスタンスを起動します。

設定項目 備考
インスタンスタイプ m5.2xlarge 最低のメモリサイズ 32GB 確保
EBS gp3 デフォルトの gp2 から変更
IAM ロール - セッションマネージャーでアクセス可能なIAMロールをアタッチ

Launch_an_instance___EC2___ap-northeast-1

DataSync Agent へのアクセスと各種テスト

セッションマネージャーからアクセス

EC2 インスタンスへのアクセスにはセッションマネージャーを使用します。ログイン後、adminユーザーに切り替えます。

sudo su - admin

KVM や VMware で VM(DataSync Agent) を起動した場合、ユーザーはadmin、パスワードはpasswordでアクセスできます。

https://docs.aws.amazon.com/datasync/latest/userguide/deploy-agents.html

ログインすると、DataSync Agent 設定画面を確認できます。

        AWS DataSync Activation - Configuration

        #######################################################################
        ##  Currently connected network adapters:
        ##
        ##  eth0: 10.0.17.69
        #######################################################################

        1: Network Configuration
        2: Test Network Connectivity
        3: Test Connectivity to Self-Managed Storage
        4: View System Resource Check (0 Errors)
        5: Command Prompt
        6: Upload agent logs via pre-signed S3 URL

        0: Get activation key

        Press "x" to exit session

        Enter command:

DataSync Agent の動作を確認するために、ネットワーク接続とストレージ接続テストをします。これらのテストはオンプレミス環境で DataSync Agent 起動時に有用なテスト項目です。

ネットワーク接続テスト

DataSync Agent の設定画面から2: Test Network Connectivityを実行します。

パブリックエンドポイントを選択し、ap-northeast-1リージョンを指定してテストしました。

        AWS DataSync Activation - Test Network Connectivity

        Choose the service endpoint type that this agent will connect to:

        1: Public endpoints
        2: FIPS endpoints
        3: VPC Endpoints using AWS PrivateLink

        Press "x" to exit

        Select service endpoint type or exit: 1

        Enter AWS Region (e.g. us-east-1): ap-northeast-1

        Connectivity Test Results - PUBLIC endpoints

        > d3dvvaliwoko8h.cloudfront.net:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > activation.datasync.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > cp.datasync.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > datasync.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > datasync-updates-ap-northeast-1.s3.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > amazonlinux-2-repos-ap-northeast-1.s3.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > amazonlinux-2-repos-ap-northeast-1.s3.dualstack.ap-northeast-1.amazonaws.com:443
         [ SSL TEST: PASSED ]
         [ NETWORK TEST: PASSED ]
        > 54.201.223.107(SUPPORT_CHANNEL_ENDPOINT):22
         [ NETWORK TEST: PASSED ]

        Press return to continue

結果はすべてパスしました。NAT Gateway 経由で DataSync のパブリックエンドポイントまでの疎通は問題ないことが確認できました。

ストレージ接続テスト

DataSync Agent の設定画面から3: Test Connectivity to Self-Managed Storageを実行します。

NFS サーバーを指定し、EFS の DNS 名を入力してテストしました。この際、EFS を EC2 はマウントしていません。

	AWS DataSync - Test Connectivity to Self-Managed Storage

	Choose the location type for the connectivity test:

	1: NFS server
	2: SMB server
	3: Object storage
	4: HDFS
	5: Azure Blob

	Press "x" to exit

	Select location type or exit: 1

	IPv4 or NFS server name:
	Invalid location address. Please try again.

	Select location type or exit: 1

	IPv4 or NFS server name: fs-0c1f163ca89a2b390.efs.ap-northeast-1.amazonaws.com

	Connectivity Test Results

	> fs-0c1f163ca89a2b390.efs.ap-northeast-1.amazonaws.com:2049
	 [ PASSED ]

	Press return to continue

結果は成功でした。EC2 と NFS サーバー(EFS)間の通信も問題ないことが確認できました。失敗する場合は NFS サーバのエクスポート設定や、必要ポートが空いているか(ファイアウォール、セキュリティグループ)などを疑ってください。

DataSync Agent のアクティベーション

アクティベーションキーの取得

DataSync Agent の設定画面から、0: Get activation keyを実行します。

リージョン名ap-northeast-1と、パブリックエンドポイント指定してアクティベーションキーを発行しました。キーの有効期限がは 30 分ですので次の作業へ速やかに取り掛かります。

        Get activation key

        Enter AWS Region (e.g. us-east-1): ap-northeast-1

        Choose the service endpoint type that this agent will connect to:

        1: Public endpoints
        2: FIPS endpoints
        3: VPC Endpoints using AWS PrivateLink

        Press "x" to exit

        Select service endpoint type or exit: 1

        Activation key: THV1L-1H7RV-IV00G-T6NJE-9CFNC

        Press return to continue

マネージメントコンソールでエージェント登録

DataSync エージェント作成画面から、発行したアクティベーションキーを入力しエージェントを登録します。

エージェントを作成する___エージェント___DataSync___ap-northeast-1

無事 DataSync Agent の登録に成功しました。

DSAgentOnEC2___エージェント___DataSync___ap-northeast-1

データ転送動作確認

DataSync Agent のアクティベーションが完了したので、実際のデータ転送プロセスを通じて DataSync の動作確認を行います。

(EFS マウント)

データソースとなる NFS サーバを用意するのが手間だったので EFS を利用しました。 EFS を DataSync Agent の EC2 インスタンスにマウントします。セッションマネージャーを使用して以下のコマンドを実行しました。EFS ヘルパーは利用せず、一般的な方法でマウントしました。

$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-0c1f163ca89a2b390.efs.ap-northeast-1.amazonaws.com:/ /mnt/efs

2 つのファイルで約 8GB ほどのデータが保存されていました。こちらを DataSync Agent 経由で S3 バケットに転送してみます。

$ ls -lh /mnt/efs/trinity-work
total 7.8G
-rw-r--r-- 1 ssm-user ssm-user 163M Oct 16 00:49 chuanwen+cowsay.sqsh
-rw-r--r-- 1 ssm-user ssm-user 7.7G Oct 16 00:00 trinityrnaseq+trinityrnaseq+2.15.2.sqsh

DataSync タスクの設定

DataSync コンソールでソースとデスティネーションのロケーションを作成します。

ソースロケーションの設定はエージェントを選択し、NFS サーバーとして EFS の DNS 名を指定します。

ロケーションを作成する___ロケーション___DataSync___ap-northeast-1-2

デスティネーションロケーションは既存の設定を流用しました。

タスクを作成する___タスク___DataSync___ap-northeast-1-2

すべてのデータを転送するデフォルトの設定です。

タスクを作成する___タスク___DataSync___ap-northeast-1-3

タスク設定完了です。DataSync の設定自体は大変シンプルです。

EC2-to-S3___タスク___DataSync___ap-northeast-1

データ転送結果の確認

タスクが正常に完了したことを DataSync コンソールで確認できました。

exec-0aab2075257e5a7bd___EC2-to-S3___履歴___DataSync___ap-northeast-1

S3 バケットを確認し、EFS から全てのファイルが正しく転送されたことを確認できました。

efs-to-s3-by-datasync_-_S3_バケット___S3___ap-northeast-1

DataSync Agent のセットアップからアクティベーションプロセスまでのすべてのステップは問題なく、データ転送も成功したことが確認できました。

まとめ

これらのステップを通じて、DataSync のアクティベーションからデータ転送の基本的なワークフローを実行しました。

  1. DataSync Agent の AMI を使用した EC2 インスタンスの準備
  2. セッションマネージャーを使用した DataSync Agent へのアクセス
  3. ネットワークとストレージの接続テスト
  4. アクティベーションキーの発行と DataSync Agent のアクティベーション
  5. EFS から S3 へのデータ転送タスクの設定と実行

おわりに

DataSync のパブリックエンドポイントまで疎通できていれば、エージェントの登録は簡単でした。

参考

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.